import useStore from '@/store/index.js';

/**
 * 超时返回的函数
 * @param date {string} 开始时间
 * @param duration {string} 增加的时长
 * @example countDate('00:00', '0,30')
 */

// export const countDate = () => {
// 	// const that = this;
// 	const { times } = useStore();
// 	const currentTime = Date.now();
// 	const lastTime = times.getLastTimes;
// 	const timeout = times.getTimeout;
// 	console.log('times.currentTime()', currentTime);
// 	console.log('times.getLastTimes()', times.getLastTimes);
// 	const timer = setInterval(() => {
// 		if (currentTime - lastTime >= timeout) {
// 			uni.reLaunch({
// 				url: '/pages/index/index',
// 			});
// 			clearInterval(timer);
// 			timer = null;
// 		}
// 	}, timeout);

// 	times.setLastTimesState(currentTime);
// };

// import store from '../store/index.js';

let goOut = null

export const timeOut = () => {
	// export default function() {
	const {
		times
	} = useStore();
	let WebviewList = [];
	// 上一次点击时间
	let lastTime = null
	// 当前时间
	let currentTime = null
	// 超时时间【可以自己设置】
	// let sys_timeout = 5 * 1000
	let sys_timeout = 2 * 60 * 1000
	// 每隔多长时间检查是否超时【可以自己设置】
	let check_time = 1000
	// 计时器【此为功能实现的方法，现在为空】	

	const isTimeOut = () => {
		// 页面上一次的点击时间
		// lastTime = store.state.lastTime
		lastTime = times.getLastTimes
		currentTime = new Date().getTime()

		// 超时了
		if ((currentTime - lastTime) > sys_timeout) {
			return true;
		} else {
			return false;
		}
	}
	const isLoginOut = () => {
		clearInterval(goOut);
		//setInterval方法来确定多长时间检测一次有没有超时
		goOut = setInterval(() => {

			// #ifdef APP-PLUS
			var pages = getCurrentPages();
			var page = pages[pages.length - 1];
			var currentWebview = page.$getAppWebview();
			// console.log(currentWebview); //获得当前webview的id

			// 判断一下是否超时，如果超时了就退出
			if (isTimeOut()) {
				if (currentWebview.__uniapp_route != 'pages/index/index') {

					if (currentWebview.__uniapp_route == 'pages/pay/slotMachines/slotMachines') {
						clearInterval(goOut);
						return
					}

					uni.removeStorageSync('userOptions');
					// 需要转到的页面【这里用你自己的跳转方法和地址】
					uni.reLaunch({
						url: `/pages/index/index`,
					});
				}
				//已经超时跳转到相应界面，不需要计时了
				// clearInterval(goOut)
			} else {
				times.setLongTimeState(false)
			}
			let flag = false;
			for (let webview of WebviewList) {
				if (webview.__uniapp_route == currentWebview.__uniapp_route) {
					flag = true;
				}
			}
			if (!flag) {
				WebviewList.push(currentWebview);
				currentWebview.addEventListener('touchstart', function() {
					// console.log('点击了');
					// store.commit('lastTimeUpdata', new Date().getTime());
					times.setLastTimesState(currentTime);
				}, false);
				currentWebview.addEventListener('close', function() {
					// console.log('关闭了');
					for (var i = 0; i < WebviewList.length; i++) {
						if (WebviewList[i].__uniapp_route == currentWebview
							.__uniapp_route) {
							WebviewList.splice(i, 1);
						}
					}
				}, false);
			}

			// #endif

			// #ifdef H5
			if (isTimeOut()) {
				uni.removeStorageSync('userOptions');
				// 需要转到的页面【这里用你自己的跳转方法和地址】
				uni.reLaunch({
					url: `/pages/index/index`,
				});
				//已经超时跳转到相应界面，不需要计时了
				// clearInterval(goOut)
			}
			// #endif


		}, check_time);
	}
	isLoginOut();
}

// 清除定时器
export const clearTime = () => {
	clearInterval(goOut);
	goOut = null
}